没有找到适合的图片
某驱动脱壳 vmp
最近遇到个加了VMP壳的驱动,顺手记录一下(图片中的地址有的对不上因为有的图是后来补的)
拿到手先查个壳发现是VMP,(已经准备回收站了)

准备环境Win7 Windbg配置好驱动调试
驱动入口首字节改CC,然后修复CheckSum,要不然Win检测到PE文件CheckSum不正确是会拒绝加载的

加载驱动

直接断到Windbg

eb xx 90 修复修改的字节

然后直接pc断到第一个call调用(这里应该就是VMP的call Handler)

目测vmp2.x直接在这里下一个断点,然后经过多次g后来到IoFreeMdl(前面主要就是VMP映射PMD填充恢复.text,.rdata,INI等节区内容)

然后键入pc回车来到一个看起来终于正常点的call

!dh fffff880`0560b000 查看PE结构看看这个call所在的位置

在INIT节里到这里基本上就可以dump了,因为一般来说驱动入口点函数都在INIT节中

入口点直接填这个函数头的位置
dump好后IDA打开

可以看到IDA已经自动把__security_init_cookie识别出来了,基本可以确定这里是GsDriverEntry函数(开启GS编译选项默认入口点就是GsDriverEntry,而我们写的DriverEntry则由GsDriverEntry调用可以看到后面的jmp DriverEntry),只是这个驱动的DriverEntry函数被V

不过看了一下主要是INIT区段的DriverEntry函数被V,其他的.text段倒是没问题,就是有个小问题,dump的时候导入表没有修复

不过问题不大可以配合IDA手动修复一下,先在Windbg里使用dps查看导入表

然后复制到txt里

然后写个脚本修复一下

修复后看的就比较舒服了

剩下的工作交给手艹艹艹